

register('刷新次数')
register('抽卡次数',{
    set = function(self)
        self:notify('单位-抽卡次数变动',self)
    end
})


local mt = ac.skill['抽取天赋']
mt.art = [[ReplaceableTextures\CommandButtons\BTNSkillz.blp]]
mt.slotid = 8
mt.tip = [[点击抽天赋|n|n|cffff0000没有天赋点点击自动购买|r|n|cff00ff00抽卡价格|r:'get_jb'木材]]
mt.show_num = 0
mt.hotkey = 'C'
mt.is_order = 1
mt.instant_flag = true
mt.resume_flag = true

function mt:get_jb(player)
    local hero = self.owner
    local player = hero and hero.owner
    if player then
        return player:get_data('天赋购买价格',0) 
    end
end

function mt:on_add()
    local hero = self.owner
    local player = hero.owner
    player:set_data('天赋购买价格',50)
    self:gc(ac.loop(1000,function()
        self.show_num = math.floor(hero:get('抽卡次数'))
        self.show_effect = self.show_num>0 or player:get('木材')>=self:get_jb()
    end))
    self:gc(hero:event '单位-抽卡次数变动'(function()
        self.show_num = math.floor(hero:get('抽卡次数'))
        self.show_effect = self.show_num>0 or player:get('木材')>=self:get_jb()
    end))
end

function mt:on_cast_shot()
    local hero = self.owner
    local player = hero.owner
    if player._ck_timer then
        return
    end
    player:notify('玩家-准备抽卡',player)
end

ac.game:event '玩家-准备抽卡'(function(_,player,refresh)
    local list = player:get_data('当前额外卡组') or player:get_data('当前卡组')
    local hero = player.hero
    if list and refresh==nil then
        if player:is_self() then
            if ac.crad_ui:is_show() then
                ac.crad_ui:hide()
            else
                ac.crad_ui:set_data(list)
            end
        end
    else
        if refresh then
            local get_jb = player:get_data('天赋刷新价格',0) 
            if hero:get('刷新次数')==0 then
                if player:get('木材')>=get_jb then
                    player:add('木材',-get_jb)
                    player:set_data('天赋刷新价格',get_jb + 50)
                    hero:add('刷新次数',1)
                else
                    show_panel_effect(player,ac.card_refresh,'木材')
                end
            end
            if hero:get('刷新次数')>0 then
                hero:add('刷新次数',-1)
                player:notify('玩家-开始抽卡',player)
            end

        else
            if hero:get('抽卡次数')==0 then
                local get_jb = player:get_data('天赋购买价格',0) 
                if player:get('木材')>=get_jb then
                    hero:add('抽卡次数',1)
                    player:add('木材',-get_jb)
                    if hero:get_data('新手上路') then
                        player:set_data('天赋购买价格',math.min(get_jb + 25,200))
                    end
                else
                    show_skill_tip(player,8,'木材')
                end
            end
            if hero:get('抽卡次数')>0 then
                hero:add('抽卡次数',-1)
                player:set_data('天赋刷新价格',50)
                player:notify('玩家-开始抽卡',player)
            end
        end
    end
end)

ac.game:event '玩家-选择英雄完毕'(function(_,player,hero)
    hero:add_skill('抽取天赋','英雄',8)
end)